package basic;

import java.io.CharConversionException;
import java.util.HashMap;
import java.util.Map;
import java.util.Stack;

/**
 * @Author: 海琳琦
 * @Date: 2021/8/30 21:36
 */
public class Title20 {
    public static void main(String[] args) {
        String s="]";
        isValid(s);
    }
    private static boolean isValid(String s) {
        if(s.length()%2!=0){
            return false;
        }
        Stack<Character> stack = new Stack<Character>();
        //第一层括弧实际是定义了一个匿名内部类 (Anonymous Inner Class)，
        //第二层括弧实际上是一个实例初始化块 (instance initializer block)，这个块在内部匿名类构造时被执行。
//        Map<Character,Character> map = new HashMap<Character, Character>(){
//            {
//            put('(',')' );
//            put('[',']' );
//            put('{','}' );
//            }
//        };
        char c;
        for (int i = 0; i < s.length(); i++) {
            c = s.charAt(i);
            if(c=='('){
                stack.add(')');
            }else if(c == '['){
                stack.add(']');
            }else if(c == '{'){
                stack.add('}');
            }else{
                if(stack.isEmpty()||c!=stack.pop()){
                    return false;
                }
            }
        }
        return stack.isEmpty();
    }
}
